// For when the Combobox is being used as a select custom field.
.wc-block-components-select-input {
	position: relative;
	margin-top: $gap;
}

.wc-block-components-form .wc-block-components-combobox,
.wc-block-components-combobox {
	.wc-block-components-combobox-control {
		@include reset-typography();
		@include reset-box();

		// Fixes width in the editor.
		.components-flex {
			width: 100%;
		}

		.components-base-control__field {
			@include reset-box();
			position: relative;
		}
		.components-combobox-control__suggestions-container {
			@include reset-typography();
			@include reset-box();
			position: relative;
		}
		input.components-combobox-control__input {
			@include reset-typography();
			@include font-size(regular);
			padding: em($gap + $gap-smaller) em($gap-smaller) em($gap-smaller);
			line-height: em($gap);
			box-sizing: border-box;
			outline: inherit;
			border: 1px solid $input-border-gray;
			background: #fff;
			box-shadow: none;
			color: $input-text-active;
			font-family: inherit;
			font-weight: normal;
			letter-spacing: inherit;
			text-align: left;
			text-overflow: ellipsis;
			text-transform: none;
			white-space: nowrap;
			width: 100%;
			opacity: initial;
			border-radius: $universal-border-radius;

			&[aria-expanded="true"],
			&:focus {
				background-color: #fff;
				color: $input-text-active;
				outline: 0;
				box-shadow: 0 0 0 1px $input-border-gray;
			}

			&[aria-expanded="true"] {
				border-bottom-right-radius: 0;
				border-bottom-left-radius: 0;
			}

			.has-dark-controls & {
				background-color: $input-background-dark;
				border-color: $input-border-dark;
				color: $input-text-dark;

				&:focus {
					background-color: $input-background-dark;
					color: $input-text-dark;
					box-shadow: 0 0 0 1px $input-border-dark;
				}
			}
		}
		.components-form-token-field__suggestions-list {
			position: absolute;
			z-index: 10;
			background-color: $select-dropdown-light;
			border: 1px solid $input-border-gray;
			border-top: 0;
			border-bottom: 0;
			margin: 3em 0 0 0;
			padding: 0;
			max-height: 300px;
			min-width: 100%;
			overflow: auto;
			color: $input-text-active;
			border-bottom-left-radius: $universal-border-radius;
			border-bottom-right-radius: $universal-border-radius;
			box-shadow: 0 1px 0 1px $input-border-gray;
			box-sizing: border-box;

			.has-dark-controls & {
				background-color: $select-dropdown-dark;
				color: $input-text-dark;
			}

			.components-form-token-field__suggestion {
				@include font-size(regular);
				color: $gray-700;
				cursor: default;
				list-style: none;
				margin: 0;
				padding: em($gap-smallest) $gap;

				&.is-selected {
					background-color: $gray-300;
					.has-dark-controls & {
						background-color: $select-item-dark;
					}
				}

				// Force empty rows to have a height.
				&::after {
					content: " ";
					display: inline-block;
				}

				&:hover,
				&:focus,
				&.is-highlighted,
				&:active {
					background-color: #00669e;
					color: #fff;

				}
			}
		}

		label.components-base-control__label {
			@include reset-typography();
			@include font-size(regular);
			position: absolute;
			transform: translateY(em($gap));
			line-height: 1.25; // =20px when font-size is 16px.
			left: em($gap-smaller);
			top: 0;
			transform-origin: top left;
			transition: all 200ms ease;
			color: $universal-body-low-emphasis;
			z-index: 1;
			margin: 0;
			overflow: hidden;
			text-overflow: ellipsis;
			max-width: calc(100% - #{2 * $gap});
			white-space: nowrap;

			.has-dark-controls & {
				color: $input-placeholder-dark;
			}
			@media screen and (prefers-reduced-motion: reduce) {
				transition: none;
			}
		}
	}

	.wc-block-components-combobox-control:has(input:-webkit-autofill) {
		label {
			transform: translateY(em($gap-smaller)) scale(0.875);
		}
	}

	&.is-active,
	&:focus-within {
		.wc-block-components-combobox-control label.components-base-control__label {
			transform: translateY(em($gap-smaller)) scale(0.875);
		}
	}

	&.has-error {
		.wc-block-components-combobox-control {
			label.components-base-control__label {
				color: $alert-red;
			}
			input.components-combobox-control__input {
				&,
				&:hover,
				&:focus,
				&:active {
					border-color: $alert-red;
				}
				&:focus {
					box-shadow: 0 0 0 1px $alert-red;
				}
			}
		}
	}
}
